package cn.itcast.b_create_obj;


/**
 * 作者  Administrator
 * 时间  2017/4/12 9:33
 * 文件  Spring36_1
 * 描述
 */
public class Stage {
	/**
	 * 方式二 比方式一
	 * 加载一个类时，其内部类不会同时被加载。
	 * http://yongliang567.iteye.com/blog/904467
	 * 一个类被加载，当且仅当其某个静态成员（静态域、构造器、静态方法等）被调用时发生
	 * */

//	static Stage ourInstance = new Stage();//1. 直接构造

	private static class StageSingletonHolder{ //2. 在getInstance的时候去构造
		 static Stage ourInstance = new Stage();
	}

	public static Stage getInstance() {
		return StageSingletonHolder.ourInstance;// 静态类 同时 实例化Stage 对象
	}

	public void printClass(){
		System.out.println(this.getClass().getSimpleName() + ":printClass");
	}
	private Stage() {
	}
}
